// Date: 2021/11/5 15:44

/*
执行用时：92 ms, 在所有 JavaScript 提交中击败了74.57%的用户
内存消耗：40 MB, 在所有 JavaScript 提交中击败了85.59%的用户
 */
var lengthOfLongestSubstring = function(s) {

    let mp = new Map();
    let res = 0;
    for (let i = 0, j = 0; i < s.length; i++) {
        mp.set(s[i], mp.has(s[i]) ? mp.get(s[i]) + 1 : 1);
        while (mp.get(s[i]) > 1) {
            mp.set(s[j], mp.get(s[j]) - 1);
            j++;
        }
        res = Math.max(res, i - j + 1);
    }
    return res;
};

function main() {

    console.log(lengthOfLongestSubstring("abcabcbb"))  // 3
}

main()